exports.video_handle = (req, res) => {
  // 获取文件路径
  const filePath = path.join(__dirname, "files", "video.mp4");
  // 获取文件信息
  const stat = fs.statSync(filePath);
  // 获取文件大小
  const fileSize = stat.size;
  // 设置响应头
  res.setHeader("Content-Length", fileSize);
  res.setHeader("Content-Type", "video/mp4");
  // 创建可读流并将其管道传输到响应流中
  fs.createReadStream(filePath).pipe(res);
};

// 返回的内容
const article = `当有人拒绝你时，不要对此感到个人冒犯。假设他们和你一样：忙碌，占据，分心。你只要稍后再请求一次。你会惊讶地发现第二次尝试通常会奏效。`;
exports.chatgpt_effect = (req, res) => {
  // 开启 Server-sent events
  res.setHeader("Content-Type", "text/event-stream");

  let index = 0;
  let timerId = 0;

  // 模拟每隔 0.1s 向前端推送一次
  timerId = setInterval(() => {
    // 获取文字
    const data = article[index];
    console.log(data);

    // 下标累加
    index++;

    // 响应结果
    if (data) {
      // data：表示数据内容，\n\n 表示结尾。
      res.write(`data: ${data}\n\n`);
    } else {
      res.end();
      clearInterval(timerId);
    }
  }, 100);
};

// 渲染十万条数据
exports.Virtual_list = (req, res) => {
  // 定义数组，用于存放十万条数据
  const data = [];
  // 循环十万次
  for (let i = 1; i <= 10000; i++) {
    // 循环添加十万条数据
    data.push({ id: i, name: `名字${i}`, value: i });
  }
  // 返回十万条数据
  res.send({ code: 0, msg: "成功", data });
};
